// #include <iostream>
// #include <cstring>
// #include <arpa/inet.h>
// #include <sys/socket.h>

// int main() {
//     // 创建服务器套接字
//     int serverSocket = socket(AF_INET, SOCK_STREAM, 0);
    
//     // 设置服务器地址
//     struct sockaddr_in serverAddress{};
//     serverAddress.sin_family = AF_INET;
//     serverAddress.sin_port = htons(1388);  // 设置端口号
//     serverAddress.sin_addr.s_addr = INADDR_ANY;  // 监听所有网卡上的连接
    
//     // 绑定套接字到指定地址和端口
//     bind(serverSocket, (struct sockaddr*)&serverAddress, sizeof(serverAddress));
    
//     // 开始监听连接请求
//     listen(serverSocket, 5);
    
//     std::cout << "等待客户端连接..." << std::endl;
    
//     while (true) {
//         // 接受客户端连接
//         int clientSocket = accept(serverSocket, nullptr, nullptr);
        
//         std::cout << "客户端已连接" << std::endl;
        
//         char buffer[1024];
//         memset(buffer, 0, sizeof(buffer));
        
//         // 接收数据
//         recv(clientSocket, buffer, sizeof(buffer), 0);
        
//         std::cout << "收到消息: " << buffer << std::endl;
        
//         // close(clientSocket);  // 关闭与客户端的连接
//         // break;  // 只处理第一个连接请求，可以根据需要修改循环逻辑
//     }
    
//     // close(serverSocket);  // 关闭服务器套接字
    
//     return 0;
// }

//1v1
// #include <iostream>
// #include <cstring>
// #include <sys/socket.h>
// #include <netinet/in.h>
// #include <unistd.h>
 
// #define PORT 1883
 
// int main() {
//     int server_fd, new_socket;
//     struct sockaddr_in address;
//     int opt = 1;
//     int addrlen = sizeof(address);
//     char buffer[1024] = {0};
//     const char* hello = "Hello from server";
 
//     // 创建套接字
//     if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
//         perror("socket failed");
//         exit(EXIT_FAILURE);
//     }
    
//     // 强制绑定端口
//     if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt))) {
//         perror("setsockopt");
//         close(server_fd);
//         exit(EXIT_FAILURE);
//     }
    
//     // 绑定地址
//     address.sin_family = AF_INET;
//     address.sin_addr.s_addr = INADDR_ANY;
//     address.sin_port = htons(PORT);
    
//     if (bind(server_fd, (struct sockaddr*)&address, sizeof(address)) < 0) {
//         perror("bind failed");
//         close(server_fd);
//         exit(EXIT_FAILURE);
//     }
    
//     // 监听连接
//     if (listen(server_fd, 3) < 0) {
//         perror("listen");
//         close(server_fd);
//         exit(EXIT_FAILURE);
//     }
    
//     // 接受客户端连接
//     if ((new_socket = accept(server_fd, (struct sockaddr*)&address, (socklen_t*)&addrlen)) < 0) {
//         perror("accept");
//         close(server_fd);
//         exit(EXIT_FAILURE);
//     }
    
//     // 读取客户端数据
//     int valread = read(new_socket, buffer, 1024);
//     printf("%s\n", buffer);
    
//     // 发送数据到客户端
//     send(new_socket, hello, strlen(hello), 0);
//     printf("Hello message sent\n");
    
//     // 关闭套接字
//     close(new_socket);
//     close(server_fd);
//     return 0;
// }

//require files 
// #include <iostream>
// #include "httpserver.cpp"
// int main()
// {
//     run("HTTP/1.1 200 OK\r\n"
//         "Content-Type: text/html\r\n\r\n"
//         "<html><body><h1>Hello, World!!!!!!</h1></body></html>");
//     return 0;
// }












